<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    var person = {
        personName:"zhangsan",
        age:20,
        sayHello:function(){
            console.log("hello");
        }
    }

    //访问对象属性和方法

    //第一种写法 最常用写法 对象名.属性名
    //对象名.方法名
    console.log(person.age);
    person.sayHello;//获取到函数 但不执行
    console.log(person.sayHello);
    person.sayHello();//加()获取函数并执行


    //第二种写法
    //对象名["属性名"]
    console.log(person["personName"]);
    //加括号执行
    person["sayHello"]();


    //区别 对象[变量] 中括号中可以放变量

    var attr = "age";
    console.log(person[attr]);

    //访问不存在的属性 得到undefined
    console.log(person.hobby);

    //添加对象属性
    person.hobby=["swimming","football"];
    console.log(person);
    console.log(person.hobby);

    //添加对象属性
    person["weight"]="50kg";
    console.log(person);
    console.log(person["weight"]);

    //修改对象属性
    person.age=30;
    person["age"]=30;

    //删除对象属性
    //delete
    delete person.age;
    console.log(person);
    console.log(person.age);

</script>
</html>